經過了昨天,
大家應該都會使用Pandas來對資料進行單一判斷了,
而今天要延續昨天的知識,
以Pandas以多重條件判斷資料。
首先,先建立一個DataFrame結構的資料,
或是有匯入的資料轉成DataFrame結構也行。
這邊為了方便對照,先印出完整的資料來看。
data = {
    'MemberId': ['001', '002', '003', '004', '005', '006', '007', '008', '009', '010'],
    'Name': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'],
    'Height': [175, 153, 164, 168, 158, 189, 171, 166, 176, 170],
    'Weight': [80, 45, 75, 52, 68, 78, 87, 85, 67, 60],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Washington', 'New York', 'Washington', 'Utah','Washington', 'Chicago', 'New York']
}
df = pd.DataFrame(data)
print(df)
印出資料如下
  MemberId Name  Height  Weight         City
0      001    A     175      80     New York
1      002    B     153      45  Los Angeles
2      003    C     164      75      Chicago
3      004    D     168      52   Washington
4      005    E     158      68     New York
5      006    F     189      78   Washington
6      007    G     171      87         Utah
7      008    H     166      85   Washington
8      009    I     176      67      Chicago
9      010    J     170      60     New York
這邊先來簡單複習一下,
語法df['City'] == 'Chicago'可以判斷City是否為Chicago,
以此類推,df['Height'] >= 160可以判斷Height是否大於等於160;df['Weight'] >= 70可以判斷Weight是否大於等於70;
若要將兩個判斷式合併,
首先務必將判斷是各別用小括號括起來,
這點很重要,
要讓程式讀懂整串程式碼的先後順序,
否則會報錯喔。
接著在判斷是之間加上&,
語法就是(df['Height'] >= 160) & (df['Weight'] >= 70),
最後印出回傳結果。
print((df['Height'] >= 160) & (df['Weight'] >= 70))
印出資料如下,
資料結構為Series。
0     True
1    False
2     True
3    False
4    False
5     True
6     True
7     True
8    False
9    False
dtype: bool
經過這兩天學會以Pandas判斷資料以boolean array的方式得知各資料是否符合條件,
之後會使用判斷式來決定取得資料,
要好好熟悉這些方式,
後面可以做更好的應用。